home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-27 | 1022 b | 39 lines | [TEXT/ttxt] |
- This file contains a list of predicate definitions that will automatically
- be read into Mini Prolog at the beginning of a session. Each clause in this
- file must be entered on a single line and lines containing syntax errors are
- always ignored. This includes the first few lines of this file and provides
- a simple way to include comments.
-
- append(nil,X,X).
- append(cons(X,Y),Z,cons(X,W)):-append(Y,Z,W).
-
- equals(X,X).
-
- not(X):-X,!,false.
- not(X).
-
- or(X,Y):-X.
- or(X,Y):-Y.
-
- and(X,Y):-X,Y.
-
- reverse(nil,nil).
- reverse(cons(A,X),Y):-and(reverse(X,Z),append(Z,cons(A,nil),Y)).
-
- palindromes(X):-and(reverse(X,Y),equals(X,Y)).
-
- mul2(A,B):-append(A,A,B).
- mul4(A,B):-and(mul2(A,C),mul2(C,B)).
- mul8(A,B):-and(mul4(A,C),mul2(C,B)).
- mul16(A,B):-and(mul8(A,C),mul2(C,B)).
- mul32(A,B):-and(mul16(A,C),mul2(C,B)).
- mul64(A,B):-and(mul32(A,C),mul2(C,B)).
- mul128(A,B):-and(mul64(A,C),mul2(C,B)).
- mul256(A,B):-and(mul128(A,C),mul2(C,B)).
- mul512(A,B):-and(mul256(A,C),mul2(C,B)).
- mul1024(A,B):-and(mul512(A,C),mul2(C,B)).
-
- true.
-
- End of stdlib
-